#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

string int2String(int num);
void hello(int n);
bool isPrim(int n);

// O(log(n)) 级别算法
int main(){
	hello(8);	
	cout << int2String(123) << endl;
	return 0;
}

// n 经过几次除以10 操作后等于0, log10(n) = 1  , O(logn)
// loga(N) = loga(b) * logb(N)
// num 为0 和负数未考虑
string int2String(int num){
	string s = "";
	while(num){
		s += '0' + num % 10;
		num /= 10;
	}

	reverse(s.begin(), s.end());		// O(n) 级别算法
	return s;
}

// sz 每次乘2,   O(logn)
void hello(int n){
	for (int sz = 1; sz < n; sz += sz)
		for(int i = 1; i < n; ++i)
			cout << "hello, Algorithm!" << endl;
}

// 判断是否是素数 O(sqrt(n))  根号n  
// n=1,0,负数待完善, 还可以优化
bool isPrim(){
	for(int x = 2; x*x <= n; x++){
		if(n%x == 0)
			return false;
	}
	return true;
}
